from .vit_multi import VisionTransformer as vmulti
from .vit_multi_wbb import VisionTransformer as vmulti_wbb
from .vit_multi_SideNet import VisionTransformer as vmulti_sn
from .vit_multi_downSideNet import VisionTransformer as vmulti_dsn
from .vit_multi_UniPT import VisionTransformer as vmulti_unipt
from .vit_multi_blocks import VisionTransformer as vmulti_blocks

"""
Model Briefing

- vmulti: Multi-feature Vision Transformer
    - cur forward: used for training stage, only utilize the additional module of the current task
    - all forward: used for test stage, utilize the additional module of all tasks
- vmulti_wbb: Multi-feature Vision Transformer with pretrained backbone feature
    - cur forward == all forward: used for training or test stage,
        utilize the additional module of all tasks + pretrained backbone feature
- vmulti_sn: Multi-feature Vision Transformer with side network
    - inherit from vit_multi
    - cur forward: used for training stage, only utilize the side network of the current task
    - all forward: used for test stage, utilize the side networks of all tasks
- vmulti_dsn: Multi-feature Vision Transformer with down side network
    - inherit from vit_multi_SideNet
- vmulti_unipt: Multi-feature Vision Transformer with UniPT as the side network
    - inherit from vit_multi_SideNet
- vmulti_blocks: Multi-feature Vision Transformer with blocks as the side network
    - inherit from vit_multi_SideNet
    - Unfinished!!!!
"""

__all__ = [
    "vmulti",
    "vmulti_wbb",
    "vmulti_sn",
    "vmulti_dsn",
    "vmulti_unipt",
    "vmulti_blocks",
]
